It is well know to control access to data, applications, etc., through the use of keys. As used herein, the term “resource” refers to anything that a computer system might control, such as data, an application, a message, a communication channel, equipment, etc. Controlling access might involve controlling, in whole or part, a user's ability to read, write, modify, control, alter, etc., the resource having a controlled access. Control might have multiple attributes, such that a given user might be granted a particular access to a resource under some conditions, but not others. For example, a user A might be allowed to modify a message if the user has certain attributes at some time of day, but not others. As another example, user B might be allowed access to a communication channel to effect a financial transaction, if time-of-day limitations are met, type of transaction limits are met and the transaction amount is within another limitation, but other, looser limitations would apply if the user provided additional authenticating data. It should be understood that a “user” in such systems could be a human user, a user computing device or system, or human operating a computer or device for such purposes.
In a well-designed access control system, a user cannot access a protected feature with less than some amount of effort, computing power and/or time. Thus, although a user with unlimited time and computing power might be able to bypass an access control system, that does not make the system not well-designed. Many access control systems use a cryptographic system to control access, wherein a user presenting a valid key to a resource, or to a server serving the resource, is provided access to the resource on the assumption that only authorized users could present valid keys.
Some cryptographic techniques use secret keys, where each valid key provides some access so users and systems generally keep them secret, and others use public/private key pairs, wherein free access to the public key of the pair is assumed and is used for creating data, messages, etc. usable only by those having access to the private key of the pair.
Both key techniques depend on secure protection of the secret key (or the private key of a public-private key pair), so that unauthorized users do not get access to resources when access is to be prevented for those users. Secure protection of secrets is also desirable when non-repudiation is a factor. Non-repudiation is a desirable feature of an access control system that goes beyond just access control in that instead of preventing a particular user from access to a resource, it allows a system operator to prove that a particular authorized user used a resource and did so in a particular manner. For example, where secret keys are used to control a financial transaction system and an authorized user can effect a transfer of funds to an account controlled by that authorized user if the authorized user presents a secret key indicating such authorization, a non-repudiation feature allows a system operator to later prove that the authorized user was in fact the user that made the transaction.
In addition to maintaining evidence to achieve defensible proof that the user performed a particular cryptographic operation, it is also desirable to maintain records of cryptographic activity in order to detect any suspicious or malicious activity. For example, it is desirable to maintain evidence that can be used to detect that an unauthorized user is performing cryptographic operations using an authorized user's secret key.
It is known to use cryptographic operations to audit cryptographic events after they take place. For example, many vendors offer systems implementing the Identrus™ Trust Network which is designed by Identrus, which is a consortium of financial institutions that creates business and operating rules in the area of digital identities. Examples of vendor implementations that implement auditing of cryptographic events within the Identrus requirements include Kyberpass' Kyberpass TrustPlatform (Kyberpass Identrus DSMS), Thales e-Security Assure Transaction, and SECUDE Digital Signature Management System (DSMS).
The above systems audit events that occur after a secret key is used, such as signature verifications and OCSP certificate validations. OCSP (Online Certificate Status Protocol) is described in Internet RFC 2560. While those auditing techniques are useful, they might miss security breaches, fail to detect breaches early enough for remedial action to take place and might not be suitable for limiting repudiation by authorized users.
It would be desirable to overcome the shortcomings of the prior art described above.